package com.cc.flyingfish.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;


/**
 *@Target: 表示该注解的作用范围，是ElementType类型的，该类型是一个枚举类型，
 * 一共提供了10个值选择，我们最常用的几个：FIELD、TYPE、PARAMETER、METHOD
 * ElementType.FIELD:用于字段、枚举的常量
 * ElementType.TYPE:用于接口、类、枚举、注解
 * ElementType.PARAMETER:用于方法参数
 * ElementType.METHOD:用于方法
 */
/**
 * @Retention: 表示该注解的生命周期，是RetentionPolicy类型的，
 * 该类型是一个枚举类型，可提供三个值选择，分别是：CLASS、RUNTIME、SOURCE
 * RetentionPolicy.CLASS: 注解被保留到class文件，但jvm加载class文件时候被遗弃，这是默认的生命周期；
 * RetentionPolicy.RUNTIME: 注解不仅被保存到class文件中，jvm加载class文件之后，仍然存在；
 * RetentionPolicy.SOURCE: 注解只保留在源文件，当Java文件编译成class文件的时候，注解被遗弃；
 */
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface IgnoreResponseAdvice {
}
